
package com.jf.cloud.supplier.mapper;

import com.jf.cloud.supplier.dto.SupplierBankCardDTO;
import com.jf.cloud.supplier.model.SupplierBankCard;
import com.jf.cloud.supplier.vo.SupplierBankCardVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 银行卡信息
 *
 * @author zz
 * @date 2022-03-14 17:04:32
 */
public interface SupplierBankCardMapper {
    /**
     * 获取银行卡信息列表
     * @return 银行卡信息列表
     */
    List<SupplierBankCard> list();

    /**
     * 根据银行卡信息id获取银行卡信息
     *
     * @param supplierBankCardId 银行卡信息id
     * @return 银行卡信息
     */
    SupplierBankCardVO getBySupplierBankCardId(@Param("supplierBankCardId") Long supplierBankCardId);

    /**
     * 保存银行卡信息
     * @param supplierBankCard 银行卡信息
     */
    void save(@Param("supplierBankCard") SupplierBankCard supplierBankCard);

    /**
     * 更新银行卡信息
     * @param supplierBankCard 银行卡信息
     */
    void update(@Param("supplierBankCard") SupplierBankCard supplierBankCard);

    /**
     * 根据银行卡信息id删除银行卡信息
     * @param supplierBankCardId
     */
    void deleteById(@Param("supplierBankCardId") Long supplierBankCardId);

    /**
     * 根据店铺id获取银行卡列表
     * @param supplierId
     * @return
     */
    List<SupplierBankCardVO> listBySupplierId(@Param("supplierId") Long supplierId);

    /**
     * 批量插入店铺银行卡信息
     * @param supplierBankCardDTOList
     * @param supplierId
     */
    void insertBatch(@Param("supplierBankCardList") List<SupplierBankCardDTO> supplierBankCardDTOList, @Param("supplierId") Long supplierId);

    /**
     * 根据店铺id批量删除该店铺下的银行卡信息
     * @param supplierId
     */
    void deleteBySupplierId(@Param("supplierId") Long supplierId);

    /**
     * 设置银行卡为主账号
     * @param supplierBankCardId
     * @param supplierId
     */
    void setPrimary(@Param("supplierBankCardId") Long supplierBankCardId, @Param("supplierId") Long supplierId);

    /**
     * 设置银行卡不为主账号
     * @param supplierBankCardId
     * @param supplierId
     */
    void setNotPrimary(@Param("supplierBankCardId")Long supplierBankCardId, @Param("supplierId") Long supplierId);

    /**
     * 根据店铺id统计银行卡数量
     * @param supplierId
     * @return
     */
    int countBySupplierId(Long supplierId);
}
